Integer to 32bit
Otázka od: Martin Kasman
16. 4. 2004 10:58
Ako prelozim obycajne cislo do 32 bitoveho?
Potrebujem do hlavicky dbf subor podla predpisaneho formatu na pat znakov
ulozit pocet zaznamov v 32 bitovom formate.
Vdaka za kazdu radu.
Odpovedá: Petr Daricek
16. 4. 2004 15:14
> Ako prelozim obycajne cislo do 32 bitoveho?
>
> Potrebujem do hlavicky dbf subor podla predpisaneho formatu na pat znakov
> ulozit pocet zaznamov v 32 bitovom formate.
>
>
> Vdaka za kazdu radu.
Pokud se nepletu, tak Integer je standartne 32 bitovy.
Co je to "obycejne cislo"?
Petr daricek
Odpovedá: Martin Kasman
16. 4. 2004 16:14
Samozrejme, ze Integer je 32 bitovy, no ako 32 bitovy je ulozeny v pamati
pocitaca. Ja som chcel, aby som ho dostal do premennej (najlepsie pchar)
tak, ako je v pamati a nie uz klasicky v desiatkovej sustave.
Nejaky algoritmus som uz nasiel, ktora vracia styri znaky, ktore predstavuju
styri ascii kody v 32 bit celeho naseho cisla.
procedure vyp(var a1,a2,a3,a4:word;pocz:longint);
var cr:real; cc,cz:longint;
begin
cz:=pocz;
if cz>=16777216 then
begin
a4:=pocz div 16777216; cz:=pocz mod 16777216;
end;
if cz>=65536 then
begin
a3:=cz div 65536; cz:=cz mod 65536;
end;
if cz>=256 then
begin
a2:=cz div 256; cz:=cz mod 256;
end;
a1:=cz;
end;
Len lepsia by bola priama funkcia v Delphi.
----- Original Message -----
From: "Petr Daricek" <petr.daricek@seznam.cz>
> > Ako prelozim obycajne cislo do 32 bitoveho?
> >
> > Potrebujem do hlavicky dbf subor podla predpisaneho formatu na pat
znakov
> > ulozit pocet zaznamov v 32 bitovom formate.
>
> Pokud se nepletu, tak Integer je standartne 32 bitovy.
> Co je to "obycejne cislo"?
> Petr daricek
Odpovedá: Pavel Poles
16. 4. 2004 16:22
> Samozrejme, ze Integer je 32 bitovy, no ako 32 bitovy je ulozeny v pamati
> pocitaca. Ja som chcel, aby som ho dostal do premennej (najlepsie pchar)
> tak, ako je v pamati a nie uz klasicky v desiatkovej sustave.
A co treba
Move(MujInteger,MujPChar^,sizeof(integer));
Pavel Poles
Odpovedá: Dalibor Toman
16. 4. 2004 17:14
On Friday, April 16, 2004 4:57 PM [CET], Martin Kasman
<martinkasman@martinkasman.sk> wrote:
> Samozrejme, ze Integer je 32 bitovy, no ako 32 bitovy je ulozeny v
> pamati pocitaca. Ja som chcel, aby som ho dostal do premennej
> (najlepsie pchar) tak, ako je v pamati a nie uz klasicky v
> desiatkovej sustave.
> Nejaky algoritmus som uz nasiel, ktora vracia styri znaky, ktore
> predstavuju styri ascii kody v 32 bit celeho naseho cisla.
>
> procedure vyp(var a1,a2,a3,a4:word;pocz:longint);
> var cr:real; cc,cz:longint;
>
> begin
> cz:=pocz;
> if cz>=16777216 then
> begin
> a4:=pocz div 16777216; cz:=pocz mod 16777216;
> end;
> if cz>=65536 then
> begin
> a3:=cz div 65536; cz:=cz mod 65536;
> end;
> if cz>=256 then
> begin
> a2:=cz div 256; cz:=cz mod 256;
> end;
> a1:=cz;
> end;
>
> Len lepsia by bola priama funkcia v Delphi.
no vypada to jako kdyby to programoval muj 3lety syn (doufam, ze se
nedozvi, ze ho takhle shazuju). Pokud jsem byl s to to pochopit tak to
nedela nic jineho nez, ze to vraci 4 byty, ze kterych se 32bit integer
sklada. Elegantnejsi a nazornejsi reseni muze byt napriklad:
TYPE
TFourBytes = Packed Record
one : Byte;
two: Byte;
three : Byte;
four :Byte;
end;
VAR
I : Integer;
J : Byte;
begin
I := $12345678;
J := TfourBytes(I).one;
...
end.
Ovsem puvodni textove zadani zrejme popisuje uplne neco jineho
D. Toman
Odpovedá: Petr Vones
18. 4. 2004 14:57
From: "Martin Kasman" <martinkasman@martinkasman.sk>
> Potrebujem do hlavicky dbf subor podla predpisaneho formatu na pat znakov
> ulozit pocet zaznamov v 32 bitovom formate.
A vysledkem ma byt presne co ?
Petr Vones